package com.ysd.service.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;

@Data
@Getter
@Setter
@TableName(value = "clock")
public class Clock implements Serializable {

    private static final long serialVersionUID = -3347824294190206438L;

    /**
     * 主键id
     */
    @TableId(type = IdType.ASSIGN_UUID)
    private String id;
    /**
     * 设备ID
     */
    private String deviceId;
    /**
     * 用户id
     */
    private String openId;
    /**
     * 闹钟名称
     */
    private String clockName;
    /**
     * 省
     */
    private String province;
    /**
     * 市
     */
    private String city;
    /**
     * 灯光开关（0关；1开）
     */
    private Integer lightSwitch;
    /**
     * 整点播报开关（0关；1开）
     */
    private Integer hourlyBroadcastSwitch;
    /**
     * 颜色设置
     */
    private String colorSetting;
    /**
     * 亮度设置（0-100）
     */
    private Integer brightnessSetting;
    /**
     * 设置闹钟时间（存JSON串）
     */
    private String setAlarmTime;
    /**
     * 未知开关1（0关；1开）
     */
    private Integer relay1Switch;
    /**
     * 未知开关2（0关；1开）
     */
    private Integer relay2Switch;
    /**
     * 未知开关3（0关；1开）
     */
    private Integer relay3Switch;
    /**
     * 电源开关左（0关；1开）
     */
    private Integer powerSwitchLeft;
    /**
     * 电源开关右（0关；1开）
     */
    private Integer powerSwitchRight;
    /**
     * 在线状态（0离线；1在线）
     */
    private Integer onLineState;
    /**
     * 绑定来源（1蓝牙连接；2WIFI连接；3手动连接）
     */
    private Integer bindSource;
    /**
     * 创建时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;
    /**
     * 创建人
     */
    private String createBy;
    /**
     * 更新时间
     */
    private Timestamp updateDate;
    /**
     * 更新人
     */
    private String updateBy;
    /**
     * 备注
     */
    private String remarks;
    /**
     * 是否删除（1删除）
     */
    @TableLogic
    private Integer delFlag;

}
